Deriving Pre-conditions for Array Bound Check Elimination
نویسندگان
چکیده
We present a high-level approach to array bound check optimization that is neither hampered by recursive functions, nor disabled by the presence of partially redundant checks. Our approach combines a forward analysis to infer precise contextual constraint at designated program points, and a backward method for deriving a safety pre-condition for each bound check. Both analyses are formulated with the help of a practical constraint solver based on Presburger formulae; resulting in an accurate and fully automatable optimization. The derived pre-conditions are also used to guide bound check specialization, for the purpose of eliminating partially redundant checks.
منابع مشابه
Array bounds check elimination in the context of deoptimization
Whenever an array element is accessed, Java virtual machines execute a compare instruction to ensure that the index value is within the valid bounds. This reduces the execution speed of Java programs. Array bounds check elimination identifies situations in which such checks are redundant and can be removed. We present an array bounds check elimination algorithm for the Java HotSpot VM based on ...
متن کاملSafe, multiphase bounds check elimination in Java
As part of its type-safety regime, the Java semantics require precise exceptions at runtime when programs attempt out-of-bound array accesses. This paper describes a Java implementation that utilizes a multiphase approach to identifying safe array accesses. This approach reduces runtime overhead by spreading the out-of-bounds checking effort across three phases of compilation and execution: pro...
متن کاملSingle Array and Bound Method (RESEARCH NOTE).
One of the major disadvantages of using Branch and Bound algorithm to solve permutation bases problems by computer is the size of main memory required. The single Array Branch and Bound (SABB) method introduction here aims to overcome this deficiency, using only N memory locations as a vector of size N, and a single cell C with N bits.
متن کاملTowards array bound check elimination in Java TM virtual machine language
In a standard Java implementation, a Java program is compiled into Java bytecode, which is then interpreted by Java virtual machine (JVM). We refer to the bytecode language as Java virtual machine language in this paper. For safety concerns, JVM performs run-time array bounds checking to detect out-of-bounds array access. Unfortunately , this practice can be prohibitively expensive in cases inv...
متن کامل